32 research outputs found

    Compiling Scala for Performance

    Get PDF
    Scala is a new programming language bringing together object-oriented and functional programming. Its defining features are uniformity and extensibility. Scala offers great flexibility for programmers, allowing them to grow the language through libraries. Oftentimes what seems like a language feature is in fact implemented in a library, effectively giving programmers the power of language designers. The downside of this flexibility is that familiar looking code may hide unexpected performance costs. It is important for Scala compilers to bring down this cost as much as possible. We identify several areas of impact for Scala performance: higher-order functions and closures, and generic containers used with primitive types. We present two complementary approaches for improving performance in these areas: optimizations and specialization. Compiler optimization can bring down the cost through a combination of aggressive inlining of higher-order functions, an extended version of copy-propagation and dead-code elimination. Both anonymous functions and boxing can be eliminated by this approach. We show on a number of benchmarks that these language features can be up to 5 times faster when properly optimized, on current day JVMs. We propose a new approach to compiling parametric polymorphism for performance at primitive types. We mix a homogeneous translation scheme with user-directed specialization for primitive types. Type parameters may be annotated to require specialization of code depending on them. We propose definition-site specialization for primitive types, achieving separate compilation and no boxing when both the definition and call site are specialized. Specialized classes are compatible with unspecialized code, and specialization agnostic code can work with specialized instances, meaning that specialization is opportunistic. We present a formalism of a small subset of Scala with specialization and prove that specialization preserves types. We implemented this translation in the Scala compiler and report on improvements on a set of benchmarks, showing that specialization can make programs more than two times faster

    Measurements of doping-dependent microwave nonlinear response in cuprate superconductors

    Get PDF
    Near-field microwave techniques have been successfully implemented in the past for the local investigation of magnetic materials and high-temperature superconductors. This dissertation reports on novel phase-sensitive linear- and nonlinear response microwave measurements of magnetic thin films and cuprate superconductors and their interpretation

    Compiling generics through user-directed type specialization

    Get PDF
    Compilation of polymorphic code through type erasure gives compact code but performance on primitive types is significantly hurt. Full specialization gives good performance, but at the cost of increased code size and compilation time. Instead we propose a mixed approach, which allows the programmer to decide what code to specialize. Our approach supports separate compilation, allows mixing of specialized and generic code, and gives very good results in practice

    Continuations in the Java Virtual Machine

    Get PDF
    Continuations have received considerable attention lately as a possible solution to web application development. Other uses proposed in the past, such as cooperative threading, coroutines or writing iterators, made them an attractive feature of dynamically typed languages. We present issues involved in adding continuations to a statically typed, object-oriented language like Java, and its implementation in the Java Virtual Machine. We propose three different flavors of continuations, and study their interactions with the base language, focusing on Java's concurrency model. We describe our implementation in Ovm, a realtime Java Virtual Machine, and discuss open issues

    Interpersonal behaviors questionnaire in sport: psychometric analysis with romanian professional athletes

    Get PDF
    Building upon self-determination theory, our objective in this research was to adapt and analyze psychometrically the Interpersonal Behaviors Questionnaire (IBQ) in sport. Our participants were 642 professional athletes (55.14% men, M age = 22.81) who completed an online survey measuring their perception of coaching behaviors, need satisfaction, need frustration, and motivation. The results showed a good fit for the 24-item IBQ with a six-factor correlated model (χ2/ df = 4.178; CFI = .925; TLI = .912; SRMR = .048; RMSEA = .070), and we obtained evidence supporting its convergent and discriminant validity. The analyses also underpinned measurement invariance across gender, age, and sport, and confirmed good reliability. Criterion validity was met by positive associations of autonomy-supportive, competence-supportive, and relatedness-supportive behaviors with need satisfaction and autonomous motivation; and of autonomy-thwarting, competence-thwarting and relatedness-thwarting behaviors with need frustration, controlled motivation and amotivation. The adapted IBQ can be applied to the assessment of professional Romanian athletes’ perceptions of need-supportive and need-thwarting coaching behaviors

    Urban Living Labs: how to enable inclusive transdisciplinary research?

    Get PDF
    The Urban Living Lab (ULL) approach has the potential to create enabling environments for social learning and to be a successful arena for innovative local collaboration in knowledge co-creation and experimentation in the context of research and practice in sustainability transitions. Nevertheless, complex issues such as the urban Food-Water-Energy (FWE) Nexus present a challenge to the realization of such ULL, especially regarding their inclusiveness. We present ULL as a frame for a local knowledge co-creation and participation approach based on the project "Creating Interfaces - Building capacity for integrated governance at the Food-Water-Energy-nexus in cities on the water". This project aims at making FWE Nexus linkages better understandable to the stakeholders (citizens and associations, city government, science, businesses), and to facilitate cooperation and knowledge exchange among them. This paper focuses on and discusses inclusiveness as a key aspect and challenge of ULLs and on what literature and our experiences in this regard suggest for the advancement of the concept of ULL towards ULL 2.0. These findings often also relate to framing transdisciplinary research in a wider sense

    Validation of a New Prognostic Score in Patients with Ovarian Adenocarcinoma

    Get PDF
    Background and Objectives: This study aimed to assess the impact of clinical prognostic factors and propose a prognostic score that aids the clinician’s decision in estimating the risk for patients in clinical practice. Materials and Methods: The study included 195 patients diagnosed with ovarian adenocarcinoma. The therapeutic strategy involved multidisciplinary decisions: surgery followed by adjuvant chemotherapy (80%), neoadjuvant chemotherapy followed by surgery (16.4%), and only chemotherapy in selected cases (3.6%). Results: After a median follow-up of 68 months, in terms of progression-free survival (PFS) and overall survival (OS), Eastern Cooperative Oncology Group (ECOG) performance status of 1 and 2 vs. 0 (hazard ratio—HR = 2.71, 95% confidence interval—CI, 1.96–3.73, p < 0.001 for PFS and HR = 3.19, 95%CI, 2.20–4.64, p < 0.001 for OS), menopausal vs. premenopausal status (HR = 2.02, 95%CI, 1.35–3,0 p < 0.001 and HR = 2.25, 95%CI = 1.41–3.59, p < 0.001), ascites (HR = 1.95, 95%CI 1.35–2.80, p = 0.03, HR = 2.31, 95%CI = 1.52–3.5, p < 0.007), residual disease (HR = 5.12, 95%CI 3.43–7.65, p < 0.0001 and HR = 4.07, 95%CI = 2.59–6.39, p < 0.0001), and thrombocytosis (HR = 2.48 95%CI = 1.72–3.58, p < 0.0001, HR = 3.33, 95%CI = 2.16–5.13, p < 0.0001) were associated with a poor prognosis. An original prognostic score including these characteristics was validated using receiver operating characteristic (ROC) curves (area under the curve—AUC = 0.799 for PFS and AUC = 0.726 for OS, p < 0.001). The median PFS for patients with none, one, two, three, or four (or more) prognostic factors was not reached, 70, 36, 20, and 12 months, respectively. The corresponding median overall survival (OS) was not reached, 108, 77, 60, and 34 months, respectively. Conclusions: Several negative prognostic factors were identified: ECOG performance status ≥ 1, the presence of ascites and residual disease after surgery, thrombocytosis, and menopausal status. These led to the development of an original prognostic score that can be helpful in clinical practice

    An Overview of the Scala Programming Language (2. Edition)

    Get PDF
    Scala fuses object-oriented and functional programming in a statically typed programming language. It is aimed at the construction of components and component systems. This paper gives an overview of the Scala language for readers who are familar with programming methods and programming language design
    corecore